右滑動作的處理與左滑類似,只是這次我們使用 leadingSwipeActionsConfigurationForRowAt
來實現。當使用者右滑時,會顯示 "編輯" 選項,點擊後會彈出一個編輯視窗讓使用者修改訊息的內容。
// leadingSwipeActionsConfigurationForRowAt 是用來處理表格右滑的動作
func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
// 定義一個編輯的動作,當使用者右滑時會顯示 "編輯" 選項
let editAction = UIContextualAction(style: .normal, title: "編輯") {
[weak self] (_, _, completionHandler) in
// 使用 weak self 防止循環引用
guard let self = self else { return }
// 根據當前滑動的列,獲取對應的訊息
let message = self.messageArray[indexPath.row]
// 編輯該訊息並更新表格
self.editMessage(message, at: indexPath)
// 操作完成後,告訴系統這個動作已經處理完畢
completionHandler(true)
}
// 設定編輯動作的背景顏色為藍色
editAction.backgroundColor = .blue
// 將編輯動作加入配置中
let configuration = UISwipeActionsConfiguration(actions: [editAction])
// 設定當使用者完全滑動時,自動執行第一個動作(編輯)
configuration.performsFirstActionWithFullSwipe = true
return configuration
}
定義完成之後,我們還需要實作裡面的編輯訊息的function,會在下一篇教。